#ifndef DKM_COMPONENT_H
#define DKM_COMPONENT_H

namespace dkm
{
	class Component
	{
	public:
		Component(const bool visible, const bool active);
		virtual ~Component();

		virtual void Update(const float dt) = 0;
		virtual void Draw() {}
		virtual void DrawBatched() {}
		
		void SetVisible(const bool visible) { isVisible = visible; }
		bool GetVisible() const { return isVisible; }
		void SetActive(const bool active) { isActive = active; }
		bool GetActive() const { return isActive; }

	protected:
		bool isVisible;
		bool isActive;
	};

}

#endif